package com.itheima.Demo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Demo比较器 {
    public static void main(String[] args) {
        //创建集合;
        ArrayList<Integer> list = new ArrayList<>();
        //添加元素;
        list.add(123);
        list.add(456);
        list.add(321);
        list.add(654);
        list.add(987);
        list.add(789);
        System.out.println("开始顺序为"+list);
        //现在默认排序是从小到大排序
        //如果想自己规定排序方式,可以用比较器
        //sort()方法第一个参数是集合,第二个参数是比较器
        //因为比较器是一个接口,所以可以写匿名内部类代表他的子类
        Collections.sort(list);
        //从小到大
        System.out.println(list);
          /*
      789  987  654  321 456      123
                compare的意思是比较,可以用这个方法来规定比较的规则
                参数：
                    o1代表要比较的数字, o2代表已经比较完的数字
                返回值：
                    如果返回值是正数,代表o1 > o2,就会把o1移动到后面
                    如果返回值是负数,代表o1 < o2,就会把o1移动到前面
                    如果返回值是零,代表o1 == o2,就不会移动
             */
          //自定义排序从大到小;
        Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return -2;
            }
        });
        System.out.println(list);//return o1-o2
        System.out.println(list);//return o2-o1
        System.out.println(list);
    }
}
